netdataでMySQL固有の詳細データをリアルタイムモニタリングしてみる
引き続きnetdata関連の市田です。
今回は、ミドルウェア固有の情報をリアルタイムにモニタリングしてみます。
netdataのインストール方法については下記のエントリーを参照ください。
リアルタイムなリソースモニタリングツールのnetdataを試してみた | Developers.IO
はじめに
netdataはデフォルトでApacheやMySQLなどのプロセス別に、CPUやメモリなどのリソース状況をリアルタイムにビジュアライズしてくれます。
例えば、MySQLが入っている場合だと、下記のようにDisk I/Oやメモリ書き込みの状況などについて、netdataが対応ミドルウェアを見つけて、ミドルウェア毎に表示してくれます。
しかし、デフォルトの他に、ApacheやMySQLといったミドルウェア特有のリソース情報も同様に取得、表示することができます。
MySQLの場合、下記のようなMySQL固有のデータを見ることができます。
- Bandwidth in kbps
- Queries in queries/sec
- Operations in operations/sec
- Table Locks in locks/sec
- Select Issues in issues/sec
- Sort Issues in issues/sec
その他のミドルウェアについて2016年8月の時点で取得できるものは以下になります。
firehol/netdata: Real-time performance monitoring, done right!
MySQLの詳細情報をグラフ化してみる
それでは早速、MySQLの詳細情報を取得していきたいと思います。
作業としては、netdataからMySQLにアクセスするクライアント(mysqlclient)をインストールします。
手順
まずmysqlclient
の動作に必要なパッケージをインストールします。
sudo yum install python-devel mysql-devel
次にmysqlclient
をインストールします。
pip install mysqlclient
インストールしたモジュールの設定ファイルは/etc/netdata/python.d/mysql.conf
になります。
今回はMySQLはデフォルト設定で動かしているため、設定ファイルもデフォルトのままです。
詳しいインストール手順は下記に記載されています。
こちらにはソースからのインストール方法も記載がありますので、必要に応じて参照頂ければと思います。
PyMySQL/mysqlclient-python: MySQL database connector for Python
mysqlclientのインストールが完了したら、netdataを再起動します。
# service netdata restart
netdataのページを見ると利用帯域や秒間クエリ数などがグラフに現れていると思います。
(下記のグラフだと、アプリケーションを何も動かしていないので、変化のない表示になっています。)
最後に
ミドルウェア特有の情報をグラフ化できるのは嬉しい機能だなと思いました。
MySQL以外のミドルウェアに関する追加モジュールについては、下記に詳細が記載されていますので、環境に応じて利用してもらえればと思います。
netdata/python.d at master · firehol/netdata
以上になります。